# 打印游戏界面
import random
import sys
import time

print('+----------------------------------------------------------+')
print('|                                                          |')
print('|                                                          |')
print('|                  花有重开日，人无再少年                       |')
print('|                 欢迎来到，人生重开模拟器                      |')
print('|                                                          |')
print('|                                                          |')
print('+----------------------------------------------------------+')

# 1、设置初始属性
# 在游戏中我们设定四个属性：智力、颜值、家境、体质
# 规定每个属性的范围为 [1, 10], 并且总和不能超过 20
while True:
    print('请设定初始属性（可用总点数 20）')
    iq = int(input('设置 智商（1~10）：'))
    face = int(input('设置 颜值（1~10)：'))
    home = int(input('设置 家境（1~10）：'))
    strong = int(input('设置 体质（1~10）：'))

    if iq < 1 or iq > 10:
        print('智商设置有误！')
        continue
    if face < 1 or face > 10:
        print('颜值设置有误！')
        continue
    if home < 1 or home > 10:
        print('家境设置有误！')
        continue
    if strong < 1 or strong >10:
        print('体质设置有误！')
        continue
    if iq + face + home + strong > 20:
        print('总点数超过了 20！')
        continue
    print('初始属性设置完成，游戏开始')
    break

# 2、设置性别
# 通过 random.randint(1, 6) 生成一个 [1, 6] 的随机整数:
#   如果是单数, 则性别设为男孩
#   如果是双数, 则性别设为女孩
#   男孩和女孩会遇到不同的事件
point = random.randint(1, 6)
if point % 2 == 0:
    gender = 'girl'
    print('你是个女孩~')
else:
    gender = 'boy'
    print('你是个男孩~')

# 3、设置出生点
# 首先按照家境(home), 分成四个档位
#   10 是第一档. 加成最高
#   [7, 9] 是第二档. 也有一些加成
#   [4, 6] 是第三档. 加成较少
#   [1, 3] 是第四档. 会扣掉属性
# 再扔一次色子, 生成 [1, 3] 的随机数, 用来表示每一种细分情况
point = random.randint(1, 6)
if home == 10:
    print('你出生在帝都，你的父母是高官正要~')
    iq += 1
    face += 1
    home += 1
elif 7 <= home <= 9:
    if 1 <= point <= 2:
        print('你出生在大城市，你的父母是公务员~')
        face += 2
    elif 3 <= home <= 4:
        print('你出生在大城市，你的父母是大企业高管~')
        home += 2
    else:
        print('你出生在大城市，你的父母是大学教授~')
        iq += 2
elif 4 <= home <= 6:
    if 1 <= point <= 2:
        print('你出生在三线城市，你的父母是教师~')
        iq += 1
    elif 3 <= point <= 4:
        print('你出生在镇上，你的父母是医生~')
        strong += 1
    else:
        print('你出生在镇上，你的父母是个体户~')
        home += 1
else:
    if 1 <= point <= 2:
        print('你出生在农村里，你的父母是辛苦劳作的农民~')
        strong += 1
        face -= 2
    elif 3 <= point <= 4:
        print('你出生在穷乡僻壤，你的父母是无业游民~')
        home -= 1
    else:
        print('你出生在镇上，你的父母感情不和~')
        strong -= 1

# 4、针对每一岁, 生成人生经历
# 幼年阶段 [1, 10]
# 青年阶段 [11, 20]
# 壮年阶段 [20, 50]
# 老年阶段 50 岁以上

# 以幼年为例, 简单实现一下这里的处理逻辑
#   使用 for 循环, 按照年龄循环起来
#   针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件
#   根据性别, 年龄, 各种属性, 来触发不同的事件. 这里都使用 if - else 的方式来组织
#   不同的事件可能会对属性有正面/负面的影响
#   在每一年的最后, 打印这一年遇到的事情
#   如果夭折, 则直接 sys.exit(0) 退出程序
#   使用 time.sleep(1) 使程序暂停执行 1s, 方便观察程序结果
for age in range(1, 11):
    point = random.randint(1, 3)
    info = f'你今年 {age} 岁，'
    # 性别触发事件
    if gender == 'girl' and home <= 3 and point == 1:
        info += '你家里人重男轻女思想非常严重，你被抛弃了！'
        print(info)
        sys.exit(0)
    # 体质触发事件
    elif strong < 6 and point != 3:
        info += '你生了一场病，'
        if home >= 5:
            info += '在父母的悉心照料下恢复了健康'
            strong += 1
            home -= 1
        else:
            info += '你的父母没精力管你，你的身体状况更糟糕了'
            strong -= 1
    # 颜值触发事件
    elif face < 4 and age >= 7:
        info += '你因为长得太丑，别的小朋友不喜欢你，'
        if iq > 5:
            info += '你决定用学习填充自己'
            iq += 1
        else:
            if gender == 'boy':
                info += '你和别的小朋友经常打架'
                iq -= 1
                strong += 1
            else:
                info += '你经常被别的小朋友欺负'
                strong -= 1
    # 智商触发事件
    elif iq < 5:
        info += '你看起来傻乎乎的，'
        if home >= 8 and age >= 6:
            info += '你的父母送你到更好的学校学习'
        elif 4 <= home <= 7:
            if gender == 'boy':
                info += '你的父母鼓励你多运动，加强身体素质'
                strong += 1
            else:
                info += '你的父母鼓励你多打扮自己'
                face += 1
        else:
            info += '你的父母为此经常吵架'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
    # 健康成长
    else:
        info += '你健康成长，'
        if point == 1:
            info += '看起来更聪明了'
            iq += 1
        elif point == 2:
            info += '看起来更好看了'
            face += 1
        else:
            info += '看起来更结实了'
            strong += 1
    print('-------------------------------------------')
    print(info)
    print(f'iq = {iq}, face = {face}, home = {home}, strong = {strong}')
    time.sleep(1)




